package com.witmore.neutron.ai.web.service;

import com.jk.common.response.ResponsePageResult;
import com.witmore.neutron.ai.web.apiv2.controller.vo.RolePermissionBindParam;
import com.witmore.neutron.ai.web.apiv2.controller.vo.RoleQueryParam;
import com.witmore.neutron.ai.web.apiv2.controller.vo.RoleResult;
import com.witmore.neutron.ai.web.apiv2.controller.vo.RoleUserResult;

import java.util.List;

/**
 * 角色服务接口
 * Author: 豆子高
 * Date: 2025/1/2
 */
public interface RoleService {

    /**
     * 根据用户ID获取角色信息
     * @param userId 用户ID
     * @return 角色信息列表
     */
    List<RoleUserResult> getRoleByUserId(Long userId);

    /**
     * 根据用户ID获取角色ID列表
     * @param userId 用户ID
     * @return 角色ID列表
     */
    List<Long> getRoleIdsByUserId(Long userId);

    /**
     * 分页查询角色列表
     * @param queryParam 查询参数
     * @return 角色分页数据
     */
    ResponsePageResult<RoleResult> getRolePage(RoleQueryParam queryParam);

    /**
     * 角色权限绑定
     * @param bindParam 绑定参数
     * @param creator 创建者
     * @return 是否成功
     */
    boolean bindRolePermissions(RolePermissionBindParam bindParam, String creator);
}